/*
* 
* Fichier source projet intel Acceler8 sous license GNU GPL v3.
* Voir http://www.gnu.org/copyleft/gpl.html pour plus d'informations
* La license est egalement disponible dans le repertoire /doc
* 
* Cree le : jeudi 10 novembre 2011 à 17 : 19.
* Auteurs : Axel MOINET et Arnaud DURAND.
* 
* Nom de fichier : parallelforcgh.cpp
* Chemin du fichier : ./src/classes/parallelforcgh/parallelforcgh.cpp
* 
* Description :
* 
*/

#include "parallelforcgh.h"
/*
 * Constructeur par défaut de la classe de calcul en parallèle
 */
parallelForCGH::parallelForCGH(int p_g, int p_h, threadPrincipal *p_thread, tbb::concurrent_vector<int> *p_cgh) {
	if(p_thread == NULL) {
		//Envoyer une exception pointeur nul
	}
	else {
		this->g = p_g;
		this->h = p_h;
		this->tableau = p_thread->getPrefixeTab();
		this->Cgh = p_cgh;
	}
}

/*
 * Surcharge de l'opérateur () pour l'éxécution du code lors de l'appel à la fonction parallel_for
 */
void parallelForCGH::operator() (const tbb::blocked_range<int> &r) const {
	for(int i = r.begin(); i != r.end(); i++) {
		//Demande de parcours de toutes les lignes en tant que h
		(*(this->Cgh))[i] = ( (*(this->tableau))[h].at(i) - (*(this->tableau))[g-1].at(i) );
	}
}
